GtkCssProvider: Set default value if no state pseudo-class is specified.
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 4 May 2010 17:58:07 +0000 (19:58 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:37:10 +0000 (15:37 +0100)
gtk/gtkcssprovider.c

index 93604885fdc0add946b73c5c88e68f9253fb6909..fbebb47688e79d81e56d8ca1ae23d30994faab01 100644 (file)
@@ -444,6 +444,7 @@ compare_selector (GtkWidgetPath *path,
 
       if (match)
         {
+          /* Only 4 bits are actually used */
           score <<= 4;
           score |= elem_score;
         }
@@ -529,7 +530,12 @@ gtk_style_get_style (GtkStyleProvider *provider,
       g_hash_table_iter_init (&iter, info->style);
 
       while (g_hash_table_iter_next (&iter, &key, &value))
-        gtk_style_set_set_property (set, key, info->state, value);
+        {
+          if (info->state == GTK_STATE_NORMAL)
+            gtk_style_set_set_default (set, key, value);
+          else
+            gtk_style_set_set_property (set, key, info->state, value);
+        }
     }
 
   g_array_free (priority_info, TRUE);